/**
 * 注意：该文件禁止修改
 * 若为项目配置需要，请在restful目录下进行相关配置
 */

import { TIMEOUT, ERR_OK, baseURL, STATUS } from './config'
import axios from 'axios'
import qs from 'qs'

// axios 配置
const platformXhr = axios.create({
  baseURL: process.env.NODE_ENV !== 'production' ? baseURL.dev : baseURL.prod,
  timeout: TIMEOUT,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
  }
})

//添加请求拦截器
platformXhr.interceptors.request.use(
  function (config) {
    // 如果请求是 post 的请求 用qs 配置下 请求参数
    if (config.method === 'post') {
      config.headers['Content-Type'] = 'application/json; charset=UTF-8'
      return config
    }

    // 简单的调用 get 请求
    if (config.method === 'get') {
      return config
    }
  },
  function (error) {
    //请求错误时做些事
    return Promise.reject(error)
  }
)

// 添加响应拦截器
platformXhr.interceptors.response.use(
  function (response) {
    if (response[STATUS] === ERR_OK) {
      return response.data
    } else {
      // 接口异常返回
      return Promise.reject(response.data)
    }
  },
  function (error) {
    return Promise.reject(error)
  }
)

export default platformXhr
